package com.leetcode;


import java.util.Arrays;

/**
 * 2341. 数组能形成多少数对 (简单)
 * 给你一个下标从 0 开始的整数数组 nums 。在一步操作中，你可以执行以下步骤：
 * 从 nums 选出 两个 相等的 整数
 * 从 nums 中移除这两个整数，形成一个 数对
 * 请你在 nums 上多次执行此操作直到无法继续执行。
 * 返回一个下标从 0 开始、长度为 2 的整数数组 answer 作为答案，其中 answer[0] 是形成的数对数目，answer[1] 是对 nums 尽可能执行上述操作后剩下的整数数目。
 */
public class LeetCode2341 {

    public static void main(String[] arg0) {
        int[] nums = new int[]{6, 9, 9, 9};
        System.out.println("answer = " + Arrays.toString(numberOfPairs(nums)));
    }

    /**
     * 排序，一次循环记录数对数目 和 形不成数对的数目
     */
    public static int[] numberOfPairs(int[] nums) {
        int[] answer = new int[2];
        Arrays.sort(nums);
        int shuDui = 0;
        int otherNum = 0;
        for (int i = 0; i < nums.length; i++) {
            if (i == nums.length - 1) {
                otherNum++;
            } else {
                if (nums[i] == nums[i + 1]) {
                    shuDui++;
                    i++;
                } else {
                    otherNum++;
                }
            }
        }
        answer[0] = shuDui;
        answer[1] = otherNum;
        return answer;
    }

}
